package com.parseword2;

import java.util.List;

public class Word2Main2 {
	// 分词测试
	public static void main(String[] args) throws Exception {
		// 词汇
		Word word = new Word();
		word.set("NI");				// 设置词汇
		word.set("NIcc");			// 设置词汇
		
		String text = "abNIcd";		// 文本语句
		
		ParseWord parseWord = new SimpleParseWord();
		// 获得所有分词
		List<ParseWordResult> parseWordResults = word.getAll(text, parseWord);
		System.out.println(parseWordResults);	// 输出分词
		// 格式化 1 将词汇变为* 效率一般
		System.out.println(format(parseWordResults));
		// 格式化 2 将词汇变为* 效率高
		System.out.println(format(word, parseWord, text));
	}
	
	public static String format(Word word,ParseWord parseWord,String text){
		StringBuilder texts = new StringBuilder(1024);
		while(text!=null){
			
			ParseWordResult parseWordResult = word.get(text, parseWord);
			if(parseWordResult!=null){
				String frontText = parseWordResult.getFrontText();	// 前面的文本
				String wordText = parseWordResult.getWordText();	// 截取词汇
				String rearText = parseWordResult.getRearText();	// 后面的文本
				
				if(frontText!=null){
					texts.append(frontText);
				}
				if(wordText!=null){
					texts.append("*");
				}
				text = rearText;
			}
		}
		return texts.toString();
	}
	public static String format(List<ParseWordResult> parseWordResults){
		int length = parseWordResults.size();
		StringBuilder text = new StringBuilder(1024);
		for (int i = 0; i < length; i++) {
			ParseWordResult parseWordResult = parseWordResults.get(i);
			text.append(parseWordResult.getFrontText()).append("*");
			if(i == length-1){
				if(parseWordResult.getRearText()!=null){
					text.append(parseWordResult.getRearText());
				}
			}
		}
		return text.toString();
	}
}
